---
sidebar_label: hasura migrate create
sidebar_position: 24
description: Create ``sql`` files required for a migration using the Hasura CLI
keywords:
  - hasura
  - docs
  - CLI
  - hasura migrate create
---

# Hasura CLI: hasura migrate create

Create ``sql`` files required for a migration.

## Synopsis

As you make changes to your database's schema, Hasura tracks these changes via migrations. This command creates a ``sql`` file that contains the changes you made that can then be applied to a database.

Further reading:
- https://hasura.io/docs/latest/migrations-metadata-seeds/manage-migrations/


```bash
hasura migrate create [migration-name] [flags]
```

## Examples

```bash
# Setup migration files for the first time by introspecting a server:
hasura migrate create "init" --from-server

# Setup migration files for the first time by introspecting a server when there are multiple schemas:
hasura migrate create "init" --from-server --schema myschema1,myschema2

# Use with admin secret:
hasura migrate create --admin-secret "<admin-secret>"

# Setup migration files from an instance mentioned by the flag:
hasura migrate create init --from-server --endpoint "<endpoint>"

# Take pg_dump of schema and hasura metadata from server while specifying the schemas to include
hasura migrate create init --from-server --schema myschema1,myschema2

# Create up and down SQL migrations, providing contents as flags
hasura migrate create migration-name --up-sql "CREATE TABLE article(id serial NOT NULL, title text NOT NULL, content text NOT NULL);"  --down-sql "DROP TABLE article;"
```

## Options

```sass
    --from-server                 take pg_dump of schema (default: public) and Hasura metadata from the server
    --sql-from-file string        path to an SQL file which contains the SQL statements
    --schema strings              name of Postgres schema to export as a migration. provide multiple schemas with a comma separated list e.g. --schema public,user (default [public])
    --metadata-from-file string   path to a hasura metadata file to be used for up actions
    --metadata-from-server        take metadata from the server and write it as an up migration file
    --up-sql string               sql string/query that is to be used to create an up migration
    --down-sql string             sql string/query that is to be used to create a down migration
-h, --help                        help for create
```

## Options inherited from parent commands

```sass
--admin-secret string            admin secret for Hasura GraphQL Engine (env "HASURA_GRAPHQL_ADMIN_SECRET")
--certificate-authority string   path to a cert file for the certificate authority (env "HASURA_GRAPHQL_CERTIFICATE_AUTHORITY")
--database-name string           database on which operation should be applied
--disable-interactive            disables interactive prompts (default: false) (env "HASURA_GRAPHQL_DISABLE_INTERACTIVE")
--endpoint string                http(s) endpoint for Hasura GraphQL Engine (env "HASURA_GRAPHQL_ENDPOINT")
--envfile string                 .env filename to load ENV vars from (default ".env")
--insecure-skip-tls-verify       skip TLS verification and disable cert checking (default: false) (env "HASURA_GRAPHQL_INSECURE_SKIP_TLS_VERIFY")
--log-level string               log level (DEBUG, INFO, WARN, ERROR, FATAL) (default "INFO")
--no-color                       do not colorize output (default: false)
--project string                 directory where commands are executed (default: current dir)
--skip-update-check              skip automatic update check on command execution
```

## SEE ALSO

- [hasura migrate](/hasura-cli/commands/hasura_migrate.mdx) - Manage migrations on the database

_Auto generated by spf13/cobra_
